package com.sx.pipeline.utils;


import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DiffUtil;

public class DiffUtils {
    private static final DiffUtils S_DIFF_UTILS = new DiffUtils();
    private DiffUtil.ItemCallback<String> stringItemCallback;

    public static DiffUtils getInstance() {
        return S_DIFF_UTILS;
    }

    public DiffUtil.ItemCallback<String> getStringItemCallback() {
        if (stringItemCallback == null) {
            stringItemCallback = new DiffUtil.ItemCallback<String>() {
                @Override
                public boolean areItemsTheSame(@NonNull String oldItem, @NonNull String newItem) {
                    //返回值表示新数据传入时这两个位置的数据是否时同一个条目
                    return oldItem.equals(newItem);
                }

                @Override
                public boolean areContentsTheSame(@NonNull String oldItem, @NonNull String newItem) {
                    //返回值表示新老位置的数据内容是否相同，这个方法在areItemsTheSame（）返回true时生效
                    return false;
                }
            };
        }
        return stringItemCallback;
    }
}